home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 16 / AMIGAplus Sonderheft 16 (1998)(ICP)(DE)[!].iso / pd / anwendungen / xpk_develop / include / c / inline / xpkmaster.h next >
C/C++ Source or Header  |  1998-08-27  |  3KB  |  103 lines

  1. #ifndef _INLINE_XPKMASTER_H
  2. #define _INLINE_XPKMASTER_H
  3.  
  4. #ifndef __INLINE_MACROS_H
  5. #include <inline/macros.h>
  6. #endif
  7.  
  8. #ifndef XPKMASTER_BASE_NAME
  9. #define XPKMASTER_BASE_NAME XpkBase
  10. #endif
  11.  
  12. #define XpkExamine(fib, tags) \
  13.     LP2(0x24, LONG, XpkExamine, struct XpkFib *, fib, a0, struct TagItem *, tags, a1, \
  14.     , XPKMASTER_BASE_NAME)
  15.  
  16. #ifndef NO_INLINE_STDARG
  17. #define XpkExamineTags(fib, tags...) \
  18.     ({ULONG _tags[] = {tags}; XpkExamine((fib), (struct TagItem *)_tags);})
  19. #endif
  20.  
  21. #define XpkPack(tags) \
  22.     LP1(0x2A, LONG, XpkPack, struct TagItem *, tags, a0, \
  23.     , XPKMASTER_BASE_NAME)
  24.  
  25. #ifndef NO_INLINE_STDARG
  26. #define XpkPackTags(tags...) \
  27.     ({ULONG _tags[] = {tags}; XpkPack((struct TagItem *)_tags);})
  28. #endif
  29.  
  30. #define XpkUnpack(tags) \
  31.     LP1(0x30, LONG, XpkUnpack, struct TagItem *, tags, a0, \
  32.     , XPKMASTER_BASE_NAME)
  33.  
  34. #ifndef NO_INLINE_STDARG
  35. #define XpkUnpackTags(tags...) \
  36.     ({ULONG _tags[] = {tags}; XpkUnpack((struct TagItem *)_tags);})
  37. #endif
  38.  
  39. #define XpkOpen(xbuf, tags) \
  40.     LP2(0x36, LONG, XpkOpen, struct XpkFib **, xbuf, a0, struct TagItem *, tags, a1, \
  41.     , XPKMASTER_BASE_NAME)
  42.  
  43. #ifndef NO_INLINE_STDARG
  44. #define XpkOpenTags(xbuf, tags...) \
  45.     ({ULONG _tags[] = {tags}; XpkOpen((xbuf), (struct TagItem *)_tags);})
  46. #endif
  47.  
  48. #define XpkRead(xbuf, buf, len) \
  49.     LP3(0x3C, LONG, XpkRead, struct XpkFib *, xbuf, a0, STRPTR, buf, a1, ULONG, len, d0, \
  50.     , XPKMASTER_BASE_NAME)
  51.  
  52. #define XpkWrite(xbuf, buf, len) \
  53.     LP3(0x42, LONG, XpkWrite, struct XpkFib *, xbuf, a0, STRPTR, buf, a1, LONG, len, d0, \
  54.     , XPKMASTER_BASE_NAME)
  55.  
  56. #define XpkSeek(xbuf, len, mode) \
  57.     LP3(0x48, LONG, XpkSeek, struct XpkFib *, xbuf, a0, LONG, len, d0, ULONG, mode, d1, \
  58.     , XPKMASTER_BASE_NAME)
  59.  
  60. #define XpkClose(xbuf) \
  61.     LP1(0x4E, LONG, XpkClose, struct XpkFib *, xbuf, a0, \
  62.     , XPKMASTER_BASE_NAME)
  63.  
  64. #define XpkQuery(tags) \
  65.     LP1(0x54, LONG, XpkQuery, struct TagItem *, tags, a0, \
  66.     , XPKMASTER_BASE_NAME)
  67.  
  68. #ifndef NO_INLINE_STDARG
  69. #define XpkQueryTags(tags...) \
  70.     ({ULONG _tags[] = {tags}; XpkQuery((struct TagItem *)_tags);})
  71. #endif
  72.  
  73. #define XpkAllocObject(type, tags) \
  74.     LP2(0x5A, APTR, XpkAllocObject, ULONG, type, d0, struct TagItem *, tags, a0, \
  75.     , XPKMASTER_BASE_NAME)
  76.  
  77. #ifndef NO_INLINE_STDARG
  78. #define XpkAllocObjectTags(type, tags...) \
  79.     ({ULONG _tags[] = {tags}; XpkAllocObject((type), (struct TagItem *)_tags);})
  80. #endif
  81.  
  82. #define XpkFreeObject(type, object) \
  83.     LP2NR(0x60, XpkFreeObject, ULONG, type, d0, APTR, object, a0, \
  84.     , XPKMASTER_BASE_NAME)
  85.  
  86. #define XpkPrintFault(code, header) \
  87.     LP2(0x66, BOOL, XpkPrintFault, LONG, code, d0, STRPTR, header, a0, \
  88.     , XPKMASTER_BASE_NAME)
  89.  
  90. #define XpkFault(code, header, buffer, size) \
  91.     LP4(0x6C, ULONG, XpkFault, LONG, code, d0, STRPTR, header, a0, STRPTR, buffer, a1, ULONG, size, d1, \
  92.     , XPKMASTER_BASE_NAME)
  93.  
  94. #define XpkPassRequest(tags) \
  95.     LP1(0x72, LONG, XpkPassRequest, struct TagItem *, tags, a0, \
  96.     , XPKMASTER_BASE_NAME)
  97.  
  98. #ifndef NO_INLINE_STDARG
  99. #define XpkPassRequestTags(tags...) \
  100.     ({ULONG _tags[] = {tags}; XpkPassRequest((struct TagItem *)_tags);})
  101. #endif
  102.  
  103. #endif /*  _INLINE_XPKMASTER_H  */